1. Field of the Invention
The invention relates to the control of computations in data processing systems and, more particularly, to the execution of programs expressed as graphs in parallel or distributed environments.
2. Background
Complex business systems typically process data in multiple stages, with the results produced by one stage being fed into the next stage. The overall flow of information through such systems may be described in terms of a graph, with vertices in the graph representing either data files or processes, and the links or "edges" in the graph indicating that data produced in one stage of processing is used in another.
The same type of graphic representation may be used to describe parallel processing systems. For purposes of this discussion, parallel processing systems include any configuration of computer systems using multiple central processing units (CPUs), either local (e.g., multiprocessor systems such as SMP computers), or locally distributed (e.g., multiple processors coupled as clusters or MPPs), or remotely, or remotely distributed (e.g., multiple processors coupled via LAN or WAN networks), or any combination thereof. Again, the graphs will be composed of data, processes, and edges or links. In this case, the representation captures not only the flow of data between processing steps, but also the flow of data from one processing node to another. Furthermore, by replicating elements of the graph (files, processes, edges), it is possible to represent the parallelism in a system.
However, while such a graph may be useful for understanding of complex programs, such a graph cannot be directly used to invoke computations because:
(1) It does not tell how to get information in and out of the individual processes. PA1 (2) It does not tell how to move information between the processes. PA1 (3) It does not tell what order to run the processes in. PA1 (1) accepting the graph into the computer system as user input; PA1 (2) preparing the graph for execution by performing, on the computer system, graph transformation steps until the graph is in an executable form, and each link is associated with at least one communication method compatible with the access methods of the vertices connected by the link; PA1 (3) launching each link by creating, by means of the computer system, a combination of communication channels and/or data stores, as appropriate to the link's communication method; and PA1 (4) launching each process by invoking execution of the process on the computer system.
Accordingly, it would be useful to have a system and method for executing computations expressed as graphs. The present invention provides such a system and method.